<?php

namespace App\Http\Controllers\admin\Rbac;

use App\Models\Login;
use App\Models\LoginModel;
use App\Models\NodeModel;
use App\Models\RoleModel;
use App\Service\Auth;
use Elasticsearch\ClientBuilder;
use Illuminate\Http\Request;
class UserController
{
    /**
     * @后台用户管理员展示页面
     * @user 刘璇
     * @method get
     * @url https://www.healthcare.com/user/user_index
     * @data
     * @return \Illuminate\Http\Response
     */
    public function roleIndex(Request $request)
    {
        //获取用户名
        $userName=$request->get('username');
        //模型关联角色表并获取全部数据
        $data=Login::with(['role'])->get();
        //返回管理员列表并传值
        return view('Rbac/userindex',['data'=>$data]);

    }


    /**
     * @后台用户管理员添加页面
     * @user 刘璇
     * @method get
     * @url https://www.healthcare.com/user/user_create
     * @data
     * @return \Illuminate\Http\Response
     */
    public function userCreate()
    {
        //获取角色表数据
        $role=RoleModel::get();
        //返回添加页面 并 传值
        return view('Rbac/usercreate',['role'=>$role]);
    }


    /**
     * @后台用户管理员添加方法
     * @user 刘璇
     * @method post
     * @url https://www.healthcare.com/user/role_add
     * @data
     * @return \Illuminate\Http\Response
     */
    public function userAdd(Request $request)
    {
        //获取除了"_token"和"s"以外的其他数据并赋值
        $data=$request->except("_token","s");
        //对密码进行加密处理
        $data['password']=md5($data['password']);
        //通过ORM模型进行添加
        $res=Login::create($data);
        if($res){
            return redirect("user/user_index");
        }else{
            return redirect("user/user_create");
        }
    }


    /**
     * @后台用户管理员修改页面方法
     * @user 刘璇
     * @method get
     * @url https://www.healthcare.com/user/user_update/{id}
     * @data
     * @return \Illuminate\Http\Response
     */
    public function userUpdate($id){
        //获取角色表数据
        $role=RoleModel::get();
        //根据id进行查找
        $data=Login::find($id);
        //返回修改页面 并传值
        return view('Rbac/userupdate',['data'=>$data,'role'=>$role]);
    }


    /**
     * @后台用户管理员修改方法
     * @user 刘璇
     * @method post
     * @url https://www.healthcare.com/user/user_edit
     * @data
     * @return \Illuminate\Http\Response
     */
    public function userEdit(Request $request){
        //获取除了"_token"和"s"以外的其他数据并赋值
        $data=$request->except("_token","s");
        //将密码进行加密
        $data['password']=md5($data['password']);
        //通过ORM模型进行id查找并修改
        $res=Login::where('id',$data['id'])->update($data);
        //判断是否成功
        if($res){
            return redirect("user/user_index");
        }else{
            return redirect("user/user_update");
        }
    }


    /**
     * @后台用户管理员删除方法
     * @user 刘璇
     * @method get
     * @url https://www.healthcare.com/user/role_delete/{id}
     * @data
     * @return \Illuminate\Http\Response
     */
    public function userDelete($id){
        //检查一个变量是否为数字
        if(is_numeric($id)){
            response()->json(['code'=>100010,'message'=>'数据参数不正确']);
        }
        //通过ORM模型进行删除
        $data=Login::destroy($id);
        if($data){
            return redirect("user/user_index");
        }else{
            response()->json(['code'=>100010,'message'=>'用户删除失败']);
        }
    }


}
